---全局单例事件系统，根据指定Key值添加事件、调用事件、删除事件

EventSingleton = BaseClass("EventSingleton", Singleton);
EventSingleton.callback = {}
---添加事件
 function EventSingleton:AddCallBack(key, action)
    if not self.callback[key] then
        self.callback[key] = {}
    end
    table.insert(self.callback[key], action)
end

---删除事件(isAll是否所有对应key值的事件都删除)
 function EventSingleton:RemoveCallBack(key, action, isAll)
    if isAll then
        self.callback[key] = nil
        return
    end
    if self.callback[key] then
        for i, v in pairs(self.callback[key]) do
            if v == action then
                table.remove(self.callback[key], i)
                break
            end
        end
    end
end

---调用事件
 function EventSingleton:Invoke(key,...)
    if self.callback[key] then
        for i, v in pairs(self.callback[key]) do
            v(...)
        end
    end
end

local function __init(self)
end

local function __delete(self)
end
EventSingleton.__init = __init
EventSingleton.__delete = __delete
